//
// Created by Scave on 2023/11/8.
//

#ifndef RIDER3D_RIDERENGINE_H
#define RIDER3D_RIDERENGINE_H

#include "Define.h"
#include "scene/SceneManager.h"
#include "input/Input.h"
#include "resource/File.h"
#include "resource/Resource.h"
#include "render/config/RenderConfig.h"

NS_RIDER_BEGIN

    class RiderEngine {
    public:
        explicit RiderEngine(const RenderConfig& config);

        ~RiderEngine();

        SceneManager& GetScenes();

        ResourceManager& GetResources();

        InputManager& GetInputs();

        FileManager& GetFiles();

        void Update();

    private:
        SceneManager scenes_;
        ResourceManager resources_;
        InputManager inputs_;
        FileManager files_;
    };

NS_RIDER_END

#endif //RIDER3D_RIDERENGINE_H
